﻿Imports Microsoft.Win32
Imports System.IO

Public Class Form1

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Key As RegistryKey
        Dim Pfad As String

        Try
            If OS.GetOSType = OS.OSType.Is32Bit Then ' Wenn es x32/x86 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Shell(Pfad + "WoW.exe") ' WoW wird ausgeführt
            Else ' Wenn es x64 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Shell(Pfad + "WoW.exe") ' WoW wird ausgeführt
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Key As RegistryKey
        Dim Pfad As String
        Try

            If OS.GetOSType = OS.OSType.Is32Bit Then ' Wenn es x32/x86 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                My.Computer.FileSystem.DeleteDirectory(Pfad + "Cache", FileIO.DeleteDirectoryOption.DeleteAllContents) ' Löscht den Cache Ordner mit Inhalt

                MsgBox("Cache wurde erfolgreich gelöscht!", MsgBoxStyle.Information, "Erfolg!")
            Else ' Wenn es x64 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                My.Computer.FileSystem.DeleteDirectory(Pfad + "Cache", FileIO.DeleteDirectoryOption.DeleteAllContents) ' Löscht den Cache Ordner mit Inhalt

                MsgBox("Cache wurde erfolgreich gelöscht!", MsgBoxStyle.Information, "Erfolg!")
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim Key As RegistryKey
        Dim Pfad As String
        Dim komma As String = ","
        Dim punkt As String = "."

        Try
            If OS.GetOSType = OS.OSType.Is32Bit Then ' Wenn es x32/x86 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Dim Datei As System.Diagnostics.FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(Pfad + "WoW.exe")
                Dim Version As String

                Version = Datei.FileVersion ' Version ist der aktuelle Patchstand/Dateiversion vom Clienten
                Version = Version.Replace(komma, punkt) ' ändert "," in "." um

                MsgBox(Version)
            Else ' Wenn es x64 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Dim Datei As System.Diagnostics.FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(Pfad + "WoW.exe")
                Dim Version As String

                Version = Datei.FileVersion ' Version ist der aktuelle Patchstand/Dateiversion vom Clienten
                Version = Version.Replace(komma, punkt) ' ändert "," in "." um

                MsgBox(Version)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim Key As RegistryKey
        Dim Pfad As String
        Dim Realmlist As String

        Try
            If OS.GetOSType = OS.OSType.Is32Bit Then ' Wenn es x32/x86 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Realmlist = InputBox("Bitte die Realmlist des Servers eingeben :") ' Die Eingabe der InputBox ist die Realmliste

                Dim Writer As New StreamWriter(Pfad + "\Data\deDE\realmlist.wtf")
                Writer.WriteLine(Realmlist + vbNewLine + "set patchlist eu.version.worldofwarcraft.com") ' Realmlist + Neue Zeile + Patchlist (Kann beliebig geändert werden)
                Writer.Close()

                MsgBox("Die Realmlist wurde erfolgreich geändert!", MsgBoxStyle.Information, "Erfolg!")
            Else ' Wenn es x64 Bit ist
                Key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Blizzard Entertainment\World of Warcraft")
                Pfad = Key.GetValue("Installpath") ' Installationspfad
                Key.Close()

                Realmlist = InputBox("Bitte die Realmlist des Servers eingeben :") ' Die Eingabe der InputBox ist die Realmliste

                Dim Writer As New StreamWriter(Pfad + "\Data\deDE\realmlist.wtf")
                Writer.WriteLine(Realmlist + vbNewLine + "set patchlist eu.version.worldofwarcraft.com") ' Realmlist + Neue Zeile + Patchlist (Kann beliebig geändert werden)
                Writer.Close()

                MsgBox("Die Realmlist wurde erfolgreich geändert!", MsgBoxStyle.Information, "Erfolg!")
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
            Exit Sub
        End Try
    End Sub
End Class
